﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using LojaVirtual.Comuns.Clientes;
using LojaVirtual.Infra;
using System.Web.Mvc;

namespace LojaWeb.Models
{
	public static class ControllerExtension
	{
		public static void Logar(this Controller controller, Cliente cliente, UnitOfWork db)
		{
			string email = cliente.Email.ToUpper();
			string senha = cliente.Senha;

			if (db.Clientes.Recuperar().Any(c => c.Email.ToUpper().Equals(email) && c.Senha.Equals(senha)))
			{
				cliente = db.Clientes.Recuperar().FirstOrDefault(c => c.Email.ToUpper() == email);
				controller.Session["Cliente"] = cliente;
			}
			else
			{
				throw new Exception("Email ou senha inválido");
			}
		}

		public static Cliente GetClienteLogado(this Controller controller)
		{
			if (controller.isLogado())
			{
				return (Cliente)controller.Session["Cliente"];
			}
			return null;
		}

		public static bool isLogado(this Controller controller)
		{
			return controller.Session["Cliente"] != null;
		}

	}
}